#ifndef SL_TEXTUREMANAGER_HPP
#define SL_TEXTUREMANAGER_HPP

// Eigene Header
#include "../System/Lua.hpp"
#include "ManagerTemplate.hpp"
#include "../Graphics/Animation.hpp"
#include "../System/Code.hpp"
#include "../System/Exception.hpp"

namespace sl
{
	namespace tmp
	{
		class TextureManagerS : public Singleton<TextureManagerS>, public ManagerTemplate<sf::Texture>
		{
		friend class Singleton<TextureManagerS>;
		friend class ManagerTemplate<sf::Texture>;
		public:
			using Singleton<TextureManagerS>::myInstance;

			static TextureManagerS* GetInstance()
			{
				if (!myInstance)
					myInstance = new TextureManagerS();

				return myInstance;
			}

			sf::Texture* LoadFromFile(const std::string& filename, const sf::Color& transparent = sf::Color::Magenta, const std::string& name = "");
		};
	}

	#define TextureManager tmp::TextureManagerS::GetInstance()
}

#endif //SL_IMAGEMANAGER_HPP